1. Field of the Disclosure
The present disclosure relates generally to techniques for securing data and, more particularly, techniques for storing and providing access to cryptographic keys and other secret values used to secure data.
2. Description of the Related Art
The desire to keep media content or other proprietary information secure from unauthorized use (e.g., unauthorized copying, distribution, etc.) is driven by a sector of the population that places little to no value on the intellectual properties rights of others. As such, the battle between creating security systems for digital information and the hackers that attempt to break them continues.
This battle is intensifying with the integration of electronic device features being implemented on a single device (e.g., computer with DVD functionality) and is further intensified by video processing hardware being implemented as stand-alone system on a chip (SOC) devices. In many instances, the video processing hardware SOC uses an operating system that allows end users to write their own applications, which means that the user's application may share the same processors and memory space as the security system. This makes the security operations vulnerable. To reduce the vulnerability, media processing hardware needs to be constrained to performing only specific intended types of cryptographic operations.
In addition, media processing devices, which include the media processing hardware SOC, are embedded with licensed secret keys for compliance with one or more of a plurality of media application standards (e.g., BD, DTCP, CPRM, Cable Card, etc.). Typically, such a media application standard includes a revocation mechanism whereby, if a secret key value is made public, the security functions of the compromised devices are revoked and the devices are rendered inoperable. As such, it is highly desirable that the secret keys are stored in such a way that they are not accessible to the firmware of the device (in order to avoid revocation). This is typically done by storing the secret keys in a one-time programmable (OTP) memory.
While using OTP memory has become a primary mechanism for storing secret keys within media processing devices, it is not a failsafe approach. For example, a security issue arises when multiple cryptographic clients (e.g., a hardware block that performs a specific cryptographic algorithm such as RSA, TSD, ECC, DMA, etc.) may issue read or write requests to the OTP memory asynchronously and that the requests are not atomic. In addition, as a result of granularity associated with OTP memory large key values are partitioned into smaller blocks, which have special read/write rules that are imposed on every block. Thus, it becomes necessary to associate a macro level restriction on cryptographic clients down to every micro level block access performed by the client.
As a specific example, the RSA algorithm can perform a 2048 bit RSA operation, which requires 32 reads of 64 bit blocks from the key store to assemble the exponent. If a key is intended to be used as a 2048 bit exponent, then every 64 bit block read must be associated with the intended purpose of the key; i.e. blocks have to have an attribute indicating which cryptographic client is permitted to access a particular block associated with a larger key.
Another security problem is that cryptographic strength often relies on using large keys (e.g., up to 2048 bits for RSA or 256 bits for some AES modes). However, if the large key is used one 64 bit block at a time by a weaker cryptographic client, then large keys may be attacked 64 bits (or less) at a time. Yet another way to attack large keys is to decimate a large key by overwriting portions of the key with 0's, and then perform the intended operations, but with the remainder of the weakened key. Every time a portion of the key is decimated in this way, the remainder can be determined because portions of the key are now known.
Still further, some cryptographic clients have the ability to perform operations at various levels of strength; for example, the RSA algorithm can be configured for variable size modulus or 3DES can be degraded into a DES operation. This can be exploited by a hacker to perform weaker operations and thereby attack large keys with degraded operations. Even further, some cryptographic clients use control words (CWs) and initial vectors (IVs) within the security operations. The integrity of a security system may be attacked by using an unknown CW as an IV in an operation where the clear text and the CW are known, which could be used to reveal the unknown CW value.
Another important aspect of maintaining the integrity of cryptographic operations is controlling the destination of the cryptographic operation results. For example, content exported from the SOC poses a far greater risk than content which is retained within the SOC. Yet another mode of attack involves using a key, a CW or an IV to decrypt content instead of encrypting the content. For example the intention may be to encrypt content however a hacker may use a key store value to decrypt the content.
In addition to the threat of hackers, the security of the secure content information is at risk from unauthorized public disclosure. For example, if a disgruntled employee posts the algorithm and location of the keys on the Internet, the security of the algorithm is lost. As such, the risk to security systems is not just from outsider breaking the security of the algorithm, but also from an insider intentionally compromising the integrity of the security system.
Therefore, a need exists for a security device architecture that at least partially overcomes one or more of the above mentioned security issues.